assume cs:code
data segment
  dd 16,0,22,0,382,0,1356,0,2390,0,8000,0,16000,0
  dd 24486,0,50065,0,97479,0,140417,0,197514,0
  dd 345980,0,590827,0,803530,0,1183000,0,1843000,0
  dd 2759000,0,3753000,0,4649000,0,5937000,0
  dd 3,0,7,0,9,0,13,0,28,0,38,0,130,0,220,0,476,0
  dd 778,0,1001,0,1442,0,2258,0,2793,0,4037,0,5635,0
  dd 8226,0,11542,0,14430,0,15257,0,17800,0
  dd 42 dup (0)
data ends
code segment

     start: mov ax,data
            mov ds,ax
            call aver_data

            mov ax,4c00h
            int 21h

 aver_data: push bx
            push cx
            push ax
            push dx
            push bp
            push di
            mov bx,0
            mov di,0
            mov cx,21
       ss1: mov ax,ds:[bx]
            mov dx,ds:[bx+2]
            mov bp,ds:[bx+168]
            div bp
            mov ds:[di+336],ax
            add bx,8
            add di,8
            loop ss1
            pop di
            pop bp
            pop dx
            pop ax
            pop cx
            pop bx
            ret
code ends
end start
